// app.js
const fetch = require('./utils/fetch')
App({
	onLaunch() {
		fetch('user/setting').then((data) => {
      // 判断是否登录
			if (data.isLogin) {
				console.log('已登录')
				this.onUserInfoReady()
			} else {
				// 登录
				console.log('未登录')
				this.login({
					success: () => {
						//登录成功
						console.log('登录成功')
						wx.hideLoading()
						this.onUserInfoReady()
					},
					fail: () => {
						//执行到此处，说明服务器异常，已经弹出模态框
						this.onLaunch()
					},
				})
			}
		})
	},
	login: function (options) {
		wx.login({
			success: (res) => {
				//登陆操作
				fetch('user/login', {
					js_code: res.code,
				}).then(
					(data) => {
						if (data.data && data.data.isLogin) {
							//登录成功
							options.success()
						} else {
							//登录失败
							wx.hideLoading()
							wx.showModal({
								title:
									'登录失败（请使用真实的AppID，并检查服务器端配置）',
								confirmText: '重试',
								success: (res) => {
									if (res.confirm) {
										options.fail()
									}
								},
							})
						}
					},
					() => {
						//登录失败（服务器异常）
						options.fail()
					}
				)
			},
		})
	},
	userInfoReady: false,
	onUserInfoReady: function () {
		wx.hideLoading()
		if (this.userInfoReadyCallback) {
			this.userInfoReadyCallback()
		} else {
			this.userInfoReady = true
		}
	},
	globalData: {
		userInfo: null,
	},
})
